package cn.cdeden.system.api;

import cn.cdeden.system.api.domain.vo.RemoteDeptVo;

import java.util.List;

/**
 * 部门服务
 *
 * @author Lion Li
 */
public interface RemoteDeptService {

    /**
     * 通过部门ID查询部门名称
     *
     * @param deptIds 部门ID串逗号分隔
     * @return 部门名称串逗号分隔
     */
    String selectDeptNameByIds(String deptIds);

    /**
     * 通过用户id查询部门及其所有上级部门
     */
    List<RemoteDeptVo> getSuperiorAll(Long deptId);

    /**
     * 通过部门id查询部门及其所有下级部门
     */
    List<RemoteDeptVo> queryLowerLevel(Long deptId);

    List<RemoteDeptVo> selectAll();

    /**
     * 通过AD路径查询对应部门
     * @param cName
     * @return
     */
    List<RemoteDeptVo> getByPath(String cName);

    /**
     * 保存并返回ID
     * @param dept
     * @return
     */
    Long saveReturnId(RemoteDeptVo dept);

    /**
     * 根据部门ID查询部门对象
     * @param deptId
     * @return
     */
    RemoteDeptVo getById(Long deptId);

    List<RemoteDeptVo> getByParentId(Long pid);

    List<RemoteDeptVo> selectUserByDeptName(String deptName);

    List<RemoteDeptVo> getDeptALlByUser(Long userId);
}
